//
//  Permutator.h
//  FilePermutator
//
//  Created by Christopher Kemsley on 4/7/12.
//  Copyright (c) 2012 iAppolopolis. All rights reserved.
//

#import <Cocoa/Cocoa.h>


@class Permutator ;
@class PermutatorEntry ;
@class PermutatorFile ;





@interface Permutator : NSObject
@property (readonly,strong)	NSArray*	entries ;

- (id)	initWithEntries:(NSArray*)inEntries ;

@end


@interface PermutatorEntry : NSObject
@property (readonly,strong)	NSString*	name ;
@property (readonly,strong)	NSArray*	files ;

- (id)	initWithName:(NSString*)inName files:(NSArray*)inFiles ;

@end


@interface PermutatorFile : NSObject
@property (readonly,strong)	NSString*	name ;
@property (readonly,strong)	NSString*	path ;
@property (readonly,assign)	PermutatorEntry*	parent ;

- (id)	initWithName:(NSString*)inName path:(NSString*)inPath ;

@end




@interface PermutatorEnumerator : NSObject
@property (readonly,strong)	Permutator*	permutator ;

- (id)	initWithPermutator:(Permutator*)inPermutator ;

- (NSArray*)	allPermutations ;
- (NSArray*)	nextPermutation ;

@end

